package com.eastfair.certificate.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;

import static com.eastfair.core.utils.DateUtils.DEFAULT_DATE_TIME_FORMAT;

/**
 * <p>
 * 实体类
 * 用户填写的制证信息
 * </p>
 *
 * @author ligang
 * @since 2022-07-22
 */
@Data
@ApiModel(value = "CertificateUserUpdateDTO", description = "用户填写的制证信息")
public class CertificateUserDynamicForm implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 证件id
     */
    @ApiModelProperty(value = "证件id")
    @NotNull(message = "请填写证件id")
    private Long certificateId;
    /**
     * 主体类型
     */
    @ApiModelProperty(value = "主体类型")
    @Size(max = 255, message = "主体类型长度不能超过255")
    private String principalType;
    /**
     * 公司id
     */
    @ApiModelProperty(value = "公司id")
    private Long companyId;
    /**
     * 身份证（正面）
     */
    @ApiModelProperty(value = "身份证（正面）")
    @Size(max = 255, message = "身份证（正面）长度不能超过255")
    private String cardFront;
    /**
     * 身份证（反面）
     */
    @ApiModelProperty(value = "身份证（反面）")
    @Size(max = 255, message = "身份证（反面）长度不能超过255")
    private String cardBack;
    /**
     * 身份证号码
     */
    @ApiModelProperty(value = "身份证号码")
    @Size(max = 255, message = "身份证号码长度不能超过255")
    private String cardNumber;
    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    @Size(max = 255, message = "姓名长度不能超过255")
    private String fullName;
    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    @Size(max = 255, message = "性别长度不能超过255")
    private String gender;
    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    @Size(max = 255, message = "联系方式长度不能超过255")
    private String contactInformation;
    /**
     * 展商id
     */
    @ApiModelProperty(value = "展商id")
    private Long exhibitorId;
    /**
     * 展位
     */
    @ApiModelProperty(value = "展位")
    @Size(max = 255, message = "展位长度不能超过255")
    private String booth;
    /**
     * 工作证件照
     */
    @ApiModelProperty(value = "工作证件照")
    @Size(max = 255, message = "工作证件照长度不能超过255")
    private String workCertificateImg;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Size(max = 512, message = "备注长度不能超过512")
    private String remarks;
    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号")
    @Size(max = 255, message = "车牌号长度不能超过255")
    private String carNumber;
    /**
     * 车型
     */
    @ApiModelProperty(value = "车型")
    @Size(max = 255, message = "车型长度不能超过255")
    private String carType;
    /**
     * 车大小
     */
    @ApiModelProperty(value = "车大小")
    @Size(max = 255, message = "车大小长度不能超过255")
    private String carSize;
    /**
     * 车载货量
     */
    @ApiModelProperty(value = "车载货量")
    @Size(max = 255, message = "车载货量长度不能超过255")
    private String cargoCapacity;
    /**
     * 载货材质
     */
    @ApiModelProperty(value = "载货材质")
    @Size(max = 255, message = "载货材质长度不能超过255")
    private String cargoMaterial;
    /**
     * 装卸方式
     */
    @ApiModelProperty(value = "装卸方式")
    @Size(max = 255, message = "装卸方式长度不能超过255")
    private String handlingMode;
    /**
     * 运输品种
     */
    @ApiModelProperty(value = "运输品种")
    @Size(max = 255, message = "运输品种长度不能超过255")
    private String transportVariety;
    /**
     * 申请证件类型
     */
    @ApiModelProperty(value = "申请证件类型")
    @Size(max = 255, message = "申请证件类型长度不能超过255")
    private String documentType;
    /**
     * 证件种类
     */
    @ApiModelProperty(value = "证件种类")
    @Size(max = 255, message = "证件种类长度不能超过255")
    private String certificateClassify;
    /**
     * 是否需要机力车
     */
    @ApiModelProperty(value = "是否需要机力车")
    private Integer isPower;
    /**
     * 机力车类型
     */
    @ApiModelProperty(value = "机力车类型")
    @Size(max = 255, message = "机力车类型长度不能超过255")
    private String powerClassify;
    /**
     * 展馆code
     */
    @ApiModelProperty(value = "展馆code")
    @Size(max = 255, message = "展馆code长度不能超过255")
    private String spaceCode;
    /**
     * 营业执照
     */
    @ApiModelProperty(value = "营业执照")
    @Size(max = 255, message = "营业执照长度不能超过255")
    private String businessLicense;
    /**
     * 驾驶证复印件
     */
    @ApiModelProperty(value = "驾驶证复印件")
    @Size(max = 255, message = "驾驶证复印件长度不能超过255")
    private String drivingLicense;
    /**
     * 信息统计表
     */
    @ApiModelProperty(value = "信息统计表")
    @Size(max = 255, message = "信息统计表长度不能超过255")
    private String informationStatistics;
    /**
     * 报告复印件
     */
    @ApiModelProperty(value = "报告复印件")
    @Size(max = 255, message = "报告复印件长度不能超过255")
    private String report;
    /**
     * 特种设备人员证
     */
    @ApiModelProperty(value = "特种设备人员证")
    @Size(max = 255, message = "特种设备人员证长度不能超过255")
    private String specialCertificate;
    /**
     * 特种车辆证
     */
    @ApiModelProperty(value = "特种车辆证")
    @Size(max = 255, message = "特种车辆证长度不能超过255")
    private String specialVehicleCertificate;
    /**
     * 车辆年检报告
     */
    @ApiModelProperty(value = "车辆年检报告")
    @Size(max = 255, message = "车辆年检报告长度不能超过255")
    private String yearlyInspection;

    /**
     * 进入时间
     */
    @ApiModelProperty(value = "进入时间")
    private LocalDateTime comeInTime;

    /**
     * 预约进入时间结束
     */
    @ApiModelProperty(value = "预约进入时间结束")
    private LocalDateTime appointmentInEndTime;



    /**
     * 工种高空作业证电工证其他
     */
    @ApiModelProperty(value = "工种高空作业证电工证其他")
    private String workType;
    /**
     * 工作结束时间
     */
    @ApiModelProperty(value = "工作结束时间")
    private LocalDateTime workEndTime;
    /**
     * 工作开始时间
     */
    @ApiModelProperty(value = "工作开始时间")
    private LocalDateTime workStartTime;
    /**
     * 车轴数
     */
    @ApiModelProperty(value = "车轴数")
    private String axleCount;


    @ApiModelProperty(value = "是否特殊货物 1-是 0-否")
    private Integer isSpecial;






    /**
     * 领取人手机号
     */
    @ApiModelProperty(value = "领取人手机号")
    @Size(max = 255, message = "领取人手机号长度不能超过255")
    private String drawMobile;
    /**
     * 领取人姓名
     */
    @ApiModelProperty(value = "领取人姓名")
    @Size(max = 255, message = "领取人姓名长度不能超过255")
    private String drawName;
    /**
     * 领取人身份证号
     */
    @ApiModelProperty(value = "领取人身份证号")
    @Size(max = 255, message = "领取人身份证号长度不能超过255")
    private String drawIdcard;


    /**
     * 领取方式:#{MAKE:预约领取;SITE:现场领取;}

     */
    @ApiModelProperty(value = "领取方式:#{MAKE:预约领取;SITE:现场领取;} ")
    private String drawType;
    /**
     * 领取时间

     */
    @ApiModelProperty(value = "领取时间")
    private LocalDateTime drawTime;
    /**
     * 领取预约时间
     */
    @ApiModelProperty(value = "领取预约时间")
    private LocalDateTime drawMakeTime;
    /**
     * 货主手机号
     */
    @ApiModelProperty(value = "货主手机号")
    private String cargoMobile;

}
